package dystrybucja;

import java.util.*;


import bazy.ZajeteMiejsca;

public class Rezerwacja {

	 int idRezerwacji;
	 double doZaplaty;
	 Date odjazd;
	 int iloscBiletow;
	 long pesel;
	 int idPolaczenia;
	 private static ManagerRezerwacji manager = ManagerRezerwacji.manager();
	
	public Rezerwacja(int idPol,double doZap,Date odj,int ileB,long pes ){
		idPolaczenia = idPol;
		doZaplaty = doZap;
		odjazd = odj;
		iloscBiletow = ileB;
		pesel = pes;
		
		idRezerwacji = manager.getMax() + 1;
	}
	
	private Rezerwacja(){
		
	}
	@Override
	public boolean equals(Object o){
		if(o instanceof Rezerwacja){
			Rezerwacja rez = (Rezerwacja)o;
			if(rez.idRezerwacji== this.idRezerwacji)
				return true;
		}
		return false;
	}
	public static Rezerwacja odtworzRezerwacje(int idRez,long pes,int idPol,Date odj,int ileB,double doZap){
		Rezerwacja temp = new Rezerwacja();
		temp.idPolaczenia = idPol;
		temp.doZaplaty = doZap;
		temp.odjazd = odj;
		temp.iloscBiletow = ileB;
		temp.pesel = pes;
		temp.idRezerwacji = idRez;
		return temp;
	}
	public void anulujRezerwacje(){
		GregorianCalendar can = new GregorianCalendar();
		can.setTime(odjazd);
		for(int i = 0 ; i < iloscBiletow; i++) {
			System.out.println((can.get(Calendar.YEAR) - 1900) + ", " + (can.get(Calendar.MONTH)) + ", " + can.get(Calendar.DAY_OF_MONTH));
			ZajeteMiejsca.zwolnijBilet(idPolaczenia, can.get(Calendar.YEAR) - 1900, can.get(Calendar.MONTH), can.get(Calendar.DAY_OF_MONTH));
		}
			
		manager.usunRezerwacje(this);
	}

	public int getIdRezerwacji() {
		return idRezerwacji;
	}

	public double getDoZaplaty() {
		return doZaplaty;
	}

	public Date getOdjazd() {
		return odjazd;
	}

	public int getIloscBiletow() {
		return iloscBiletow;
	}

	public long getPesel() {
		return pesel;
	}

	public int getIdPolaczenia() {
		return idPolaczenia;
	}
	
	public String trasa(){
		String temp = manager.getCel(idPolaczenia);
		temp = temp.split(",")[0];
		return temp.substring(1);
		
	}

}